1. Technical Field
The present invention relates in general to data storage systems, and in particular to serialized management of shared data storage resources. More particularly, the present invention relates to a limited concurrent access reservation technique that facilitates efficient switching of host access to resources within a data storage volume group.
2. Description of the Related Art
Logical volume management is a common approach to virtualizing disk storage. The set of operating system commands, library subroutines, and other tools that allow a user to establish and control logical volume storage is called the Logical Volume Manager (LVM). Instead of handling data storage management using physical disk partitions, an LVM divides disk space into logical partitions. LVMs offer advantages in facilitating mass data storage accessibility and management including greater flexibility for disk partitioning, on-the-fly resizing of logical volumes, and disk mirroring spanning multiple drives for greater data backup reliability.
A common LVM application is depicted in FIG. 1, which illustrates a high-level representation of LVM functionality within a data storage subsystem 100. The logical layer (i.e. LVM layer) 104 of data storage subsystem 100 controls and coordinates disk resources by mapping data between a simple and flexible logical view of storage space within a designated volume group 108 and the actual physical disks within disk drives 124 and 126. LVM layer 104 does this by using a layer of device driver code, depicted in FIG. 1 as logical volume device driver (LVDD) 110, that runs above traditional physical device drivers, represented in FIG. 1 as host bus adapter 120. The logical view of the storage resources, represented as logical volumes 112a and 112b, is provided to higher-level applications 114 and 116 within an application layer 102, and is independent of the underlying physical disk structure within physical layer 106.
Disk drives 124 and 126 are each designated within LVM layer 104 as a physical volume. In the depicted example, disk drives 124 and 126, are physically represented in LVM layer 104 as physical volumes 118 and 119, respectively. Strictly speaking, a volume group is a designated collection of physical volumes each divided in physical partitions. A logical volume is a collection of one or more logical partitions, each of which can be mapped to any physical partition in the volume group. If mirroring is used, a mirrored logical partition is mapped to two or more physical partitions.
In LVM data storage subsystems, such as data storage subsystem 100, volume groups operate in either a concurrent access mode in which the object volume group is concurrently accessible from more than one host system simultaneously, or in a non-concurrent access mode. In a non-concurrent access mode, hardware reservations are utilized to ensure that volume groups can be accessed online by only one host system.
The hardware reservations in a non-concurrent access volume group pose problems in situations in which it is necessary to switch access control to the volume group from its currently approved host system to another host system. The circumstances under which volume group control switching generally occurs fall under one of two general categories. First, a so-called “failover” situation occurs when an unforseen failure condition in the host system necessitates switching of access control to data resources within the volume group to another host system. Second, the need to switch control of the volume group to another host system may arise in the natural course of data storage system administration. Normally, such administrative switching is accomplished using a “controlled” switchover.
The first step in a controlled switchover is to terminate the current host's processing on the volume group resource by closing the currently running application (a Web server application, for example), deactivating the volume group, including unmounting the resident file system, and releasing the disk reserves. Next, control access is switched to another host node (typically a standby node) by reading volume group meta data to activate the volume group, mounting the file system, and restarting the application on the new host.
When a forced failover is required and the failed node is inaccessible, it is necessary to “break” the physical disk reservations to permit access to the object volume group from an alternate host system. The need to break the disk reservations contributes significantly to the time required to activate the volume group within the hardware/software operating environment of the new host system for an unexpected failover.
By definition, concurrent access volume groups do not share the aforementioned problems associated with breaking and resetting disk reservations or activating the volume group. However, conventional concurrent access volume groups do not provide the same assurance of serial access to logical volumes within a given volume group. Unlike non-current access volume groups in which I/O commands to the resident logical volumes can only be received by the designated (i.e. reserved) host system, concurrent access volume groups only have a limited lock mechanism that advises applications of the current access status for any given volume group.
From the foregoing, it can be appreciated that a need exists for an LVM mechanism enhanced to facilitate switch over of volume groups between host systems, while preserving the advantages of conventional non-concurrent access mechanisms. The present invention addresses such a need.